﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DADOS.auxiliares
{
    public class metMedicamentos
    {
        DB_PROAD banco = new DB_PROAD();

        private void FecharConexao(object banco)
        {
            ((DB_PROAD)banco).Connection.Close();
        }

        private void InicializarConexao(object banco)
        {
            ((DB_PROAD)banco).Connection.Open();
        }

        /// <summary>
        /// Incluir medicamento do Usuario
        /// </summary>
        /// <param name="objMedicamento">TB_MEDICAMENTO objMedicamento</param>
        public void IncluirMedUsuario(TB_MEDICAMENTO objMedicamento)
        {
            try
            {
                InicializarConexao(banco);
                banco.AddToTB_MEDICAMENTO(objMedicamento);
                banco.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }
        /// <summary>
        /// Incluir medicamento do Cuidador
        /// </summary>
        /// <param name="objMedicamentoCuidador"></param>
        public void IncluirMedCuidador(TB_MEDICAMENTOS_CUIDADOR objMedicamentoCuidador)
        {
            try
            {
                InicializarConexao(banco);
                banco.AddToTB_MEDICAMENTOS_CUIDADOR(objMedicamentoCuidador);
                banco.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        /// <summary>
        /// Lista Medicamentos do Usuario
        /// </summary>
        /// <param name="codCuidador"></param>
        /// <returns></returns>
        public List<TB_MEDICAMENTO> ListaMedUsuario(int codUsuario)
        {
            try
            {
                InicializarConexao(banco);
                var objMedUsu = banco.TB_MEDICAMENTO.Where(q => q.CO_USUARIO == codUsuario).ToList();
                return objMedUsu;
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        /// <summary>
        /// Excluir Medicamento do Usuario
        /// </summary>
        /// <param name="codMedUsuario"></param>
        public void ExcluirMedUsuario(int codMedUsuario)
        {
            try
            {
                InicializarConexao(banco);
                var objMedUsuario = banco.TB_MEDICAMENTO.Where(q => q.CO_MEDICAMENTO == codMedUsuario).FirstOrDefault();
                banco.DeleteObject(objMedUsuario);
                banco.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        /// <summary>
        /// Lista Medicamentos do Cuidador
        /// </summary>
        /// <param name="codCuidador"></param>
        /// <returns></returns>
        public List<TB_MEDICAMENTOS_CUIDADOR> ListaMedCuidador(int codCuidador)
        {
            try
            {
                InicializarConexao(banco);
                var objMedCuid = banco.TB_MEDICAMENTOS_CUIDADOR.Where(q => q.CO_CUIDADOR == codCuidador).ToList();
                return objMedCuid;
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }
        /// <summary>
        /// Excluir Medicamento do Cuidador
        /// </summary>
        /// <param name="codCuidador"></param>
        public void ExcluirMedCuidador(int codCuidador)
        {
            try
            {
                InicializarConexao(banco);
                var objMedCuid =
                    banco.TB_MEDICAMENTOS_CUIDADOR.Where(q => q.CO_MEDICAMENTOS_CUIDADOR == codCuidador).FirstOrDefault();
                banco.DeleteObject(objMedCuid);
                banco.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }
    }
}
